home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
IRIX 6.2 Development Libraries
/
SGI IRIX 6.2 Development Libraries.iso
/
dist
/
complib.idb
/
usr
/
share
/
catman
/
p_man
/
cat3
/
complib
/
INVIT.z
/
INVIT
Wrap
Text File
|
1996-03-14
|
6KB
|
133 lines
____IIIINNNNVVVVIIIITTTT((((3333FFFF)))) ____IIIINNNNVVVVIIIITTTT((((3333FFFF))))
NNNNAAAAMMMMEEEE
INVIT, SINVIT - EISPACK routine. This subroutine finds those
eigenvectors of a REAL UPPER Hessenberg matrix corresponding to specified
eigenvalues, using inverse iteration.
SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee iiiinnnnvvvviiiitttt((((nnnnmmmm,,,,nnnn,,,,aaaa,,,,wwwwrrrr,,,,wwwwiiii,,,,sssseeeelllleeeecccctttt,,,,mmmmmmmm,,,,mmmm,,,,zzzz,,,,iiiieeeerrrrrrrr,,,,rrrrmmmm1111,,,,rrrrvvvv1111,,,,rrrrvvvv2222))))
iiiinnnntttteeeeggggeeeerrrr nnnnmmmm,,,, nnnn,,,, mmmmmmmm,,,, mmmm,,,, iiiieeeerrrrrrrr
ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn aaaa((((nnnnmmmm,,,,nnnn)))),,,, wwwwrrrr((((nnnn)))),,,, wwwwiiii((((nnnn)))),,,, zzzz((((nnnnmmmm,,,,mmmmmmmm))))
ddddoooouuuubbbblllleeee pppprrrreeeecccciiiissssiiiioooonnnn rrrrmmmm1111((((nnnn,,,,nnnn)))),,,, rrrrvvvv1111((((nnnn)))),,,, rrrrvvvv2222((((nnnn))))
llllooooggggiiiiccccaaaallll sssseeeelllleeeecccctttt((((nnnn))))
ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee ssssiiiinnnnvvvviiiitttt((((nnnnmmmm,,,,nnnn,,,,aaaa,,,,wwwwrrrr,,,,wwwwiiii,,,,sssseeeelllleeeecccctttt,,,,mmmmmmmm,,,,mmmm,,,,zzzz,,,,iiiieeeerrrrrrrr,,,,rrrrmmmm1111,,,,rrrrvvvv1111,,,,rrrrvvvv2222))))
iiiinnnntttteeeeggggeeeerrrr nnnnmmmm,,,, nnnn,,,, mmmmmmmm,,,, mmmm,,,, iiiieeeerrrrrrrr
rrrreeeeaaaallll aaaa((((nnnnmmmm,,,,nnnn)))),,,, wwwwrrrr((((nnnn)))),,,, wwwwiiii((((nnnn)))),,,, zzzz((((nnnnmmmm,,,,mmmmmmmm))))
rrrreeeeaaaallll rrrrmmmm1111((((nnnn,,,,nnnn)))),,,, rrrrvvvv1111((((nnnn)))),,,, rrrrvvvv2222((((nnnn))))
llllooooggggiiiiccccaaaallll sssseeeelllleeeecccctttt((((nnnn))))
DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
On INPUT
NNNNMMMM must be set to the row dimension of two-dimensional array parameters
as declared in the calling program dimension statement.
NNNN is the order of the matrix.
AAAA contains the Hessenberg matrix.
WWWWRRRR and WI contain the real and imaginary parts, respectively, of the
eigenvalues of the matrix. The eigenvalues MUST be stored in a manner
IDENTICAL to that of subroutine HQR, which recognizes possible splitting
of the matrix.
SSSSEEEELLLLEEEECCCCTTTT specifies the eigenvectors to be found. The eigenvector
corresponding to the J-th eigenvalue is specified by setting SELECT(J) to
.TRUE.
MMMMMMMM should be set to an upper bound for the number of columns required to
store the eigenvectors to be found. NOTE that two columns are required
to store the eigenvector corresponding to a complex eigenvalue. On
OUTPUT
AAAA and WI are unaltered.
WWWWRRRR may have been altered since close eigenvalues are perturbed slightly
in searching for independent eigenvectors.
SSSSEEEELLLLEEEECCCCTTTT may have been altered. If the elements corresponding to a pair of
conjugate complex eigenvalues were each initially set to .TRUE., the
PPPPaaaaggggeeee 1111
____IIIINNNNVVVVIIIITTTT((((3333FFFF)))) ____IIIINNNNVVVVIIIITTTT((((3333FFFF))))
program resets the second of the two elements to .FALSE.
MMMM is the number of columns actually used to store the eigenvectors.
ZZZZ contains the real and imaginary parts of the eigenvectors. If the next
selected eigenvalue is real, the next column of Z contains its
eigenvector. If the eigenvalue is complex, the next two columns of Z
contain the real and imaginary parts of its eigenvector. The
eigenvectors are normalized so that the component of largest magnitude is
1. Any vector which fails the acceptance test is set to zero.
IIIIEEEERRRRRRRR is set to ZERO for normal return, -(2*N+1) if more than MM
columns of Z are necessary
to store the eigenvectors corresponding to
the specified eigenvalues. -K if the iteration corresponding
to the K-th
value fails, -(N+K) if both error situations occur.
RRRRMMMM1111 , RV1, and RV2 are temporary storage arrays. Note that RM1 is square
of dimension N by N and, augmented by two columns of Z, is the transpose
of the corresponding ALGOL B array. The ALGOL procedure GUESSVEC appears
in INVIT in line. Calls PYTHAG(A,B) for sqrt(A**2 + B**2). Calls CDIV
for complex division. Questions and comments should be directed to B. S.
Garbow, APPLIED MATHEMATICS DIVISION, ARGONNE NATIONAL LABORATORY
PPPPaaaaggggeeee 2222